const {
	verifyCaptcha
} = require('../../lib/utils/captcha')
const {
	EMAIL_SCENE
} = require('../../common/constants')
const {
	ERROR
} = require('../../common/error')
// const { //__WJF
// 	sendVeriCodeToMail
// } = require('send-mail-smtp')
/**
 * 发送邮箱验证码，可用于登录、注册、绑定邮箱、修改密码等操作
 * @tutorial
 * @param {Object} params
 * @param {String} params.email     邮箱
 * @param {String} params.captcha   图形验证码
 * @param {String} params.scene     使用场景
 * @returns
 */
module.exports = async function(params = {}) {
	const schema = {
		email: 'email',
		captcha: 'string',
		scene: 'string'
	}
	this.middleware.validate(params, schema)

	const {
		email,
		captcha,
		scene
	} = params

	if (!(Object.values(EMAIL_SCENE).includes(scene))) {
		throw {
			errCode: ERROR.INVALID_PARAM
		}
	}

	await verifyCaptcha.call(this, {
		scene: 'send-email-code',
		captcha
	})
	//生成验证码 __WJF
	// emailCode = (Math.floor(Math.random() * 899999) + 100000) + ''
	// let res = await require('../../lib/utils/verify-code').setEmailVerifyCode.call(this, {
	// 	email,
	// 	code: emailCode,
	// 	expiresIn: 300, //5分钟
	// 	scene
	// })
	//通过调用公共模块向邮箱发送验证码 __WJF
	// if (!res.errCode) {
	// 	let mail = email.toLowerCase()
	// 	let lang = await this.getClientInfo().locale
	// 	let paras = {
	// 		to: mail,
	// 		code: emailCode,
	// 		lang
	// 	}
	// 	//通过调用公共模块向邮箱发送验证码
	// 	return await sendVeriCodeToMail(paras)
	// }
	// return {
	// 	errCode: 0,
	// 	mailCode: emailCode
	// }
	//调用公共模块向邮箱发送验证码
	// async function sendCodeToEmail(){
	// 	email = email.toLowerCase()
	// 	let lang=await this.getClientInfo().locale
	// 	let paras={
	// 		to:email,
	// 		code:emailCode,
	// 		lang
	// 	}
	// 	return {
	// 		errCode:0,
	// 		errMsg:'test',
	// 		data:paras
	// 	}
	// }
	// return {
	// 	errCode: 'uni-id-invalid-mail-template',
	// 	errMsg: `已启动测试模式，直接使用：123456作为邮箱验证码即可。\n如果是正式项目，需自行实现发送邮件的相关功能 \n test__WJF`
	// }



	//原代码，因没有邮件发送逻辑，只搞了一段供测试用的代码，现已补齐
	// 暂改为前端发送,因为需要解决当前语言问题
	// async function sendCodeToEmail(){
	// 	console.log('向邮箱发送验证码');
	// }
	// return {
	// 	errCode: 'uni-id-invalid-mail-template',
	// 	errMsg: `已启动测试模式，直接使用：123456作为邮箱验证码即可。\n如果是正式项目，需自行实现发送邮件的相关功能 \n test__WJF`
	// }

	// -- 测试代码


	//发送邮件--需自行实现
}